package br.edu.NovaRoma.AgendaWeb.negocio;

import java.sql.SQLException;
import java.util.List;

import br.edu.NovaRoma.AgendaWeb.dados.IRepContato;
import br.edu.NovaRoma.AgendaWeb.dados.IRepGrupo;
import br.edu.NovaRoma.AgendaWeb.dados.RepContato;
import br.edu.NovaRoma.AgendaWeb.dados.RepGrupo;

public class Fachada {
	private CtrlContato cadContato;
	private CtrlGrupo cadGrupo;
	private static Fachada instancia;
	
	private Fachada(){
		initCadastro();
	}
	
	public static Fachada getInstancia(){
		if(instancia == null){
			instancia = new Fachada();
		}
		return instancia;
	}
	
	private void initCadastro() {

		IRepContato repContato = new RepContato();
		cadContato = new CtrlContato(repContato);
		IRepGrupo repGrupo = new RepGrupo();
		cadGrupo = new CtrlGrupo(repGrupo);
	}
	
	public void inserirContato(Contato c) throws SQLException{
		cadContato.inserirContato(c);
	}
	public void removerContato(int idContato) throws SQLException{
		cadContato.removerContato(idContato);
	}
	public void atualizarContato(Contato c) throws SQLException{
		cadContato.atualizarContato(c);
	}
	public List<Contato> listarContatos() throws SQLException{
		return cadContato.listarContatos();
	}
	public List<Contato> listarPorNome(String nome) throws SQLException{
		return cadContato.listarPorNome(nome);
	}
	public List<Contato> listarPorGrupo(int idGrupo) throws SQLException{
		return cadContato.listarPorGrupo(idGrupo);
	}
	public List<Contato> listarPorBairro(String bairro) throws SQLException{
		return cadContato.listarPorBairro(bairro);
	}
	
	public void inserirGrupo(Grupo g) throws SQLException{
		cadGrupo.inserirGrupo(g);
	}
	public void removerGrupo(int idGrupo) throws SQLException{
		cadGrupo.removerGrupo(idGrupo);
	}
	public void atualizarGrupo(Grupo g) throws SQLException{
		cadGrupo.atualizarGrupo(g);
	}
	public List<Grupo> listarPorNomeGrupo(String grupo) throws SQLException{
		return cadGrupo.listarPorNomeGrupo(grupo);
	}
	public List<Grupo> listarGrupos() throws SQLException{
		return cadGrupo.listarGrupos();
	}

}
